#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
//int main()
//{
//	short s = 8; //短整型为2个字节
//	int n = 12; //整型为4个字节
//	printf("%zd\n", sizeof(s = n + 5));
//	printf("%d\n", s);
//	return 0;
//}

////在x86环境下
////假设结构体的大小是20个字节
////程序输出的结果是啥？
//struct Test {
//	int Num;
//	char* pcName;
//	short sDate;
//	char cha[2];
//	short sBa[4];
//}*p = (struct Test*)0x100000;
//int main()
//{
//	printf("%p\n", p + 0x1); //p是结构体指针，+1就是跳过一个结构体，一个结构体是20个字节
//	//0x00100014
//	printf("%p\n", (unsigned long)p + 0x1); //整数+1，为0x00100001
//	printf("%p\n", (unsigned int*)p + 0x1); //+1跳过一个unsigned int类型的变量，是4个字节
//	//0x00100004
//	return 0;
//}

//int main()
//{
//	int a[5][5];
//	int (*p)[4];
//	p = a;
//	printf("%p,%d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]);
//	return 0;
//}

#include<stdio.h>
int main()
{
	char* c[] = { "ENTER","NEW","POINT","FIRST" };
	char** cp[] = { c + 3,c + 2,c + 1,c };
	char*** cpp = cp;
	
	printf("%s\n", **++cpp);
	printf("%s\n", *-- * ++cpp + 3);
	printf("%s\n", *cpp[-2] + 3);
	printf("%s\n", cpp[-1][-1] + 1);
	return 0;
}